<?php

/**
 * Controlador de la entidad Transacciones
 *
 * En este controlador están almacenados los metodos para la
 * administración de las transacciones del sistema.
 *
 *
 * Desarrollado por la Escuela de Ingeniería de Antioquia
 *
 * @link          http://cakephp.org CakePHP(tm) Project
 * @package       miBusWeb.Controller
 * @fecha         2013-10-08
 * @fecha_mod	  2013-10-08
 * @cake		  CakePHP(tm) v 0.10.0.0
 */
App::uses('AppController', 'Controller');

class TransaccionesController extends AppController {
    /**
     * 				CONTROLLER DATA MEMBERS
     */

    /**
     * Componente de sesión de cake
     *
     * En este archivo se usa la sesión para poder usar la función setFlash
     *
     * @var array(string)
     */
    public $components = array('Session');

    /**
     * Nombre del modelo
     *
     * Nombre del modelo para un alias las consultas y busquedas, ingresos y
     * otras interacciones con la base de datos.
     *
     * @var string
     */
    public $name = "Transacciones";

    /**
     * Modelos que utiliza
     *
     * Los modelos que usa el controller. Por defecto
     * cake usa el singular basado en el nombre del modelo,
     * pero por asuntos del idioma siempre se ingresa el modelo
     * para evitar posibles problemas.
     *
     * @var array(string)
     */
    public $uses = array('Transaccion', 'Saldo');

    /**
     * Acción por defecto para las transacciones
     *
     * Este es el metodo base de las transacciones, en este metodo
     * se buscan las transacciones almacenados en el sistema y se
     * devuelven a la vista para que el usuario pueda realizar
     * acciones sobre ellas
     *
     * @return void
     */
    /**
     * 				CONTROLLER METHODS (ACTIONS)
     */
    public function index() {
        $this->set('transacciones', $this->Transaccion->find('all'));
    }

    /**
     * Consultar la información de una transaccion especifica
     *
     * En este metodo se busca la transaccion según el parametro de
     * entrada $id, si dicho parametro es nulo o si no se encuentra
     * una transaccion con ese identificador asociado se devulve un error.
     * por otro lado si se encuentra la transaccion se devuelve su
     * información a la vista para que sea procesada.
     *
     *
     * @param int $id identifiacador de la transaccion que se va a buscar.
     * @return void
     */
    public function ver($id = null) {
        if (!$id) {
            throw new NotFoundException(__('Transaccion inválida'));
        }
        $transaccion = $this->Transaccion->findByid_transaccion($id);
        if (!$transaccion) {
            $this->Session->setFlash('Su Transaccion es inválida');
            throw new NotFoundException(__('Su Transaccion es inválida'));
        }
        $this->set('transaccion', $transaccion);
    }

    /**
     * Adiciona una nueva Transaccion
     *
     * Este metodo adiciona una Transaccion a la base de datos
     *
     * La función verifica que el request es un post, de esa
     * se da cuenta si se esta guardando una Transaccion nueva o si
     * simplemente se esta haciendo un llamado a la vista de
     * este action. Se adicionan los campos de auditoría, y se
     * verifica si la Transaccion fue almacenada correctamente.
     *
     * @return void
     */
    public function agregar() {
        if ($this->request->is('post')) {
            $this->Transaccion->create();
            if ($this->Transaccion->save($this->request->data)) {
                $this->Session->setFlash('La Transaccion ha sido guardada exitosamente');
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash('La Transaccion no se ha guardado');
            }
        }
    }

}

?>